<?php
/**
 * 1ab10cdf123efg
 * 1:ab
 * 10:cdf
 * 123:efg
 */
$str="1ab10cdf123efg7";
$strarr=str_split($str);
$len=count($strarr);

echo $str;
$ret=[];
$s='';
$prev_type=null;
foreach($strarr as $k=>$v){
    $type=is_numeric($v);
    //与上一个类型比较，一样的话就连接
    if($prev_type === null || $type === $prev_type){
        $s.= $v;
    }
    else
    {
        //不一样的话，是数字的话，本行结束，不是数字的话粘贴:
        if($type){
            $ret[]=$s;
            $s='';
        }else{
            $s.=":";
        }
        $s.=$v;
    }
    $prev_type=$type;
}
if(!empty($s)){
    $ret[]=$s;
}
echo "<pre>";
print_r($ret);
/**
 * 搞清楚啥时换行啥时连接:即可
 */

